package app;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import util.Util;

import java.util.Date;

/**
 * 和数据库打交道的类，最终程序中获取数据库的记录就通过这个类来描述
 * 这个类就队形我们数据库表名，数据表中的一行继续撸就对我们这个类的一个对象
 * 该类的一个对象就是数据表中一行
 * 数据表的所有内容就对应Filemeat这个类的对象数组
 *
 * create table if not exists file_meta(
 *       name varchar(50) not null,
 *       path varchar(100) not null,
 *       is_directory boolean not null,
 *       size bigint,
 *       last_modified timestamp not null,
 *       pinyin varchar(200),
 *       pinyin_first varchar(50)
 * );
 **/
@Data
@NoArgsConstructor
@ToString
@EqualsAndHashCode
public class FileMeta {
    public FileMeta(String name, String path, Boolean isDirectory, Long size, Date lastModified) {
        this.name = name;
        this.path = path;
        this.isDirectory = isDirectory;
        this.size = size;
        this.lastModified = lastModified;
    }

    private String name;
    private String path;
    private Boolean isDirectory;
    private Long size;
    private Date lastModified;
    //一下三个属性要在界面中展示，将当前属性值做处理后展示
    //这些名称属性名要和app.fxml中保持一致
    //文件类型
    private String isDirectoryText;
    //文件大小
    private  String sizeText;
    //上次修改时间
    private  String lastModifiedText;


    public void  setSize(Long size){
        this.size = size;
        this.sizeText = Util.parseSize(size);
    }

    public void setIsDirectory(Boolean directory) {
        isDirectory = directory;
        this.isDirectoryText = Util.parseFileType(directory);
    }


    public void setLastModified(Date lastModified) {
        this.lastModified = lastModified;
        this.lastModifiedText = Util.parseData(lastModified);
    }

    //若包含中文名称，名称全拼
    private String pinYin;
    //拼音首字母
    private String pinYinFirst;
}